JdbcTemplate
হলো স্প্রিং ফ্রেমওয়ার্কের একটি ক্লাস, যা JDBC (Java Database Connectivity)-এর মাধ্যমে ডাটাবেস অপারেশন (CRUD) সহজ এবং কার্যকর করে তোলে। এটি JDBC API-এর জটিলতা যেমন রিসোর্স ম্যানেজমেন্ট, SQL এক্সিকিউশন, এবং এক্সেপশন হ্যান্ডলিং সরিয়ে একটি সহজ ইন্টারফেস প্রদান করে।
মূল কাজ:
JdbcTemplate কাজ করার জন্য প্রথমে একটি DataSource
কনফিগার করতে হয়, যা ডাটাবেসের সাথে কানেকশন স্থাপন করে।
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("root");
dataSource.setPassword("password");
return dataSource;
}
DataSource
থেকে JdbcTemplate তৈরি করতে হবে।
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
ডাটাবেসে ডেটা যোগ করার জন্য update
মেথড ব্যবহার করা হয়।
public void insertEmployee(int id, String name, String department) {
String sql = "INSERT INTO employee (id, name, department) VALUES (?, ?, ?)";
jdbcTemplate.update(sql, id, name, department);
}
ডাটাবেসের ডেটা আপডেট করার জন্যও update
মেথড ব্যবহার করা হয়।
public void updateEmployeeDepartment(int id, String newDepartment) {
String sql = "UPDATE employee SET department = ? WHERE id = ?";
jdbcTemplate.update(sql, newDepartment, id);
}
ডেটা ডিলিট করার জন্য update
মেথড ব্যবহার করা হয়।
public void deleteEmployeeById(int id) {
String sql = "DELETE FROM employee WHERE id = ?";
jdbcTemplate.update(sql, id);
}
ডেটাবেস থেকে একটি নির্দিষ্ট রেকর্ড ফেচ করতে queryForObject
ব্যবহার করা হয়।
public String getEmployeeNameById(int id) {
String sql = "SELECT name FROM employee WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, String.class);
}
ডাটাবেস থেকে একাধিক রেকর্ড রিট্রিভ করতে query
এবং RowMapper
ব্যবহার করা হয়।
public List<Employee> getAllEmployees() {
String sql = "SELECT * FROM employee";
return jdbcTemplate.query(sql, (rs, rowNum) ->
new Employee(
rs.getInt("id"),
rs.getString("name"),
rs.getString("department")
)
);
}
মেথড | কাজ |
---|---|
update() | INSERT , UPDATE , বা DELETE কুইয়ারি এক্সিকিউট করে। |
queryForObject() | একটি সিঙ্গেল রো বা ভ্যালু রিটার্ন করে। |
query() | মাল্টিপল রো প্রসেস করে এবং একটি লিস্ট রিটার্ন করে। |
batchUpdate() | মাল্টিপল SQL স্টেটমেন্ট একসাথে এক্সিকিউট করে। |
execute() | কাস্টম SQL স্টেটমেন্ট এক্সিকিউট করতে ব্যবহার করা হয়। |
Connection
খোলা এবং বন্ধ করা, PreparedStatement
তৈরি করা ইত্যাদি সরিয়ে দেয়।SQLException
কে স্প্রিং এর কাস্টম এক্সেপশন (DataAccessException) এ রূপান্তর করে।RowMapper
ইন্টারফেস ব্যবহার করে ডেটা প্রসেসিং আরও ফ্লেক্সিবল করে।JdbcTemplate স্প্রিং জেডিবিসি ব্যবহারকারীদের জন্য একটি অত্যন্ত শক্তিশালী এবং সহজ সমাধান, বিশেষ করে যদি আপনি হালকা ডাটাবেস অপারেশন করতে চান।
Read more